Signal processors are used in a wide range of applications including, for example, measuring a current output from a photo-detector of an array in an optical navigation system. Optical navigation systems, such as an optical computer mouse or trackball, are well known for inputting data into and interfacing with personal computers and workstations. Such devices allow rapid relocation of a cursor on a monitor, and are useful in many text, database and graphical programs. A user controls the cursor, for example, by moving the mouse over a surface to move the cursor in a direction and over distance proportional to the movement of the mouse. Alternatively, movement of the hand over a stationary device may be used for the same purpose.
The dominant technology used today for optical mice relies on a light source illuminating a surface, a two-dimensional (2D) array of photosensitive elements to capture the resultant images, and a signal processor that correlates successive images to detect and quantify the motion of the mouse. The image can be produced in a number of ways including illuminating the surface at or near grazing incidence to produce and image shadows due to roughness of the surface, illumination with a coherent light source to produce a speckle image of the surface, or the use of a pattern printed onto the surface itself. Regardless of the imaging method used to produce a trackable image, a processor captures the image and does a series of correlations between successive images to determine the most likely motion between frames. A similar method can be used with a linear sensor to track one dimension (1D) motion. In either case, the correlation used to track the motion of the image requires a great deal of processing and results in an unsatisfactory power consumption that limits the usefulness of the technique in power sensitive applications, such as wireless mice.
An alternative method to correlation uses a linear or 1D array of photosensitive elements or detectors, such as photodiodes, in which the output of the individual elements in the array are combined or wired together in a repeating pattern spanning two or more detectors to track motion along one axis or in one dimension. Generally, the detectors are wired together in a pattern spanning from about four (4) to about (10) elements, a number referred to here as the M value of the array. This results in M discrete outputs from the array. An example of such an array with an M value of 4 is shown in FIG. 1.
Referring to FIG. 1, the array, shown is a 1D comb-array 102 of photosensitive elements 104 directly wired in groups to detect of motion through movement of a light-dark pattern known as speckle. Speckle is the complex interference pattern generated by scattering of coherent light off of an optically rough surface and detected by a photosensitive element, such as a photodiode, with a finite angular field-of-view or numerical aperture. The image mapped to or captured on the 1D comb-array may be magnified or de-magnified to achieve matching and so that the distribution of spatial frequencies in the image is roughly centered around the spatial frequencies of the array. Through use of signal processing, it is possible to track the movement of this image as it moves back and forth across the 1D comb-array and from that tracking derive the motion of the surface relative to the including the 1D comb-array along the long axis of the array. Current processing techniques require that the 1D comb-array outputs be weighted with coefficients derived from sine and cosine waves, combined together, and processed to produce two quasi-sinusoidal outputs representing separate in-phase and quadrature signals. These signals are then used to track motion.
Although a significant improvement over prior art, these speckle-based devices have not been wholly satisfactory for a number of reasons. In particular, optical navigation systems using the above 1D comb-array have not demonstrated the accuracy demanded in state-of-the-art pointing devices today, which generally must have a path error of less than 0.5%. Furthermore, the above approach involves processing signals from multiple signal processing paths, and suffers from relatively complex signal processing requirements.
Another problem with the above speckle-based devices is their limited accuracy along directions that deviate significantly from orientations the 1D array. This is especially a problem where the optical mouse is moved in an off-axis direction causing the speckle pattern or image to enter and leave the field of view of the 1D array too quickly before the image has a chance to build-up an unambiguous signal. This deficiency can be partially remedied by increasing the number of axes, but at the price of reducing the simplicity of the linear comb-array approach.
Accordingly, there is a need for a signal processor or signal processing circuit and method that is capable of tracking motion from an optical sensor without requiring the generation and processing of quasi-sinusoidal signals for tracking, thereby providing motion tracking from a single processing path with much simpler signal processing requirements. It is desirable that the signal processing circuit and method are capable of tracking motion from a comb-array having an arbitrary M value. It is still further desirable that the circuit and method can be applied to both speckle and non-speckle based devices, and to devices or optical sensors having either 1D or 2D arrays.